﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLLopHoc.DoiTuongDuLieu;
using QLLopHoc.KetNoiDatabase;
using QLLopHoc.XuLyDuLieu;

namespace QLLopHoc.XuLyDuLieu
{
    public class XLLopHoc
    {
        //phuong thuc lay danh sach lop
        public static List<DTLopHoc> LayDSLopHoc()
        {
            return KNLopHoc.LayDSLopHoc();
        }
        //phuong thuc lay danh sach sinh vien cua lop hoc
        public static List<DTSinhVien> LayDSMaSVCuaLH(string tenLH)
        {
            List<DTSinhVien> dssv = new List<DTSinhVien>();
            List<string> dsmssv = KNChiTietLH.LayDSMaSVCuaLH(tenLH);
            foreach (string mssv in dsmssv)
            {
                DTSinhVien sv = KNSinhVien.LaySVTuMS(mssv);
                dssv.Add(sv);
            }
            return dssv;
        }
        //phương thức thêm 1 lớp học 
        public static string ThemLopHoc(DTLopHoc lh)
        {
            string errorStr = "";
            if (KNLopHoc.LayLopHocTheoTen(lh.TenLopHoc) != null)
            {
                errorStr += "Lớp học đã tồn tại.";
                return errorStr;
            }
            if (lh.MaGiangVien == "" || lh.MaGiangVien == "")
            {
                errorStr += "Chưa đủ thông tin.";
                return errorStr;
            }
            if (KNGiangVien.LayGVTuMS(lh.MaGiangVien) == null)
            {
                errorStr += "Giảng viên không tồn tại.";
                return errorStr;
            }
            if (!KNLopHoc.ThemLH(lh))
            {
                errorStr += "Không thêm được lớp học.";
            }
            return errorStr;
        }
        //phương thức cập nhật lớp học 
        public static string CapNhatLH(DTLopHoc lh)
        {
            string errorStr = "";
            if (KNLopHoc.LayLopHocTheoTen(lh.TenLopHoc) == null)
            {
                errorStr += "Lớp học không tồn tại.";
                return errorStr;
            }
            if (lh.MaGiangVien == "" || lh.MaGiangVien == "")
            {
                errorStr += "Chưa đủ thông tin.";
                return errorStr;
            }
            if (KNGiangVien.LayGVTuMS(lh.MaGiangVien) == null)
            {
                errorStr += "Giảng viên không tồn tại.";
                return errorStr;
            }
            if (!KNLopHoc.CapNhatLopHoc(lh))
            {
                errorStr += "Không cập nhật được lớp học.";
            }
            return errorStr;
        }
        public static string XoaLopHoc(string tenLH)
        {
            string errorStr = "";
            if (KNLopHoc.LayLopHocTheoTen(tenLH) == null)
            {
                errorStr += "Lớp học không tồn tại.";
                return errorStr;
            }
            if (tenLH == "")
            {
                errorStr += "Chưa đủ thông tin.";
                return errorStr;
            }
            if (!KNLopHoc.XoaLH(tenLH))
            {
                errorStr += "Không xóa được lớp học.";
            }
            return errorStr;
        }
        //phương thức thêm sinh viên vào lớp học 
        public static string ThemSVVaoLH(string mssv, string tenLH)
        {
            string errorStr = "";
            if (mssv == "" || tenLH == "")
            {
                errorStr += "Chưa đủ thông tin.";
                return errorStr;
            }
            if (KNLopHoc.LayLopHocTheoTen(tenLH) == null)
            {
                errorStr += "Lớp học không tồn tại.";
                return errorStr;
            }
            if (KNSinhVien.LaySVTuMS(mssv) == null)
            {
                errorStr += "Sinh viên không tồn tại.";
                return errorStr;
            }
            DTChiTietLH ctlh = new DTChiTietLH();
            ctlh.MSSV = mssv;
            ctlh.TenLopHoc = tenLH;
            if (!KNChiTietLH.ThemChiTietLH(ctlh))
            {
                errorStr += "Không thêm được sinh viên vào lớp học.";
            }
            return errorStr;
        }
        //phương thức xóa sinh viên của lớp học 
        public static string XoaSVCuaLH(string mssv, string tenLH)
        {
            string errorStr = "";
            if (mssv == "" || tenLH == "")
            {
                errorStr += "Chưa đủ thông tin.";
                return errorStr;
            }
            if (KNLopHoc.LayLopHocTheoTen(tenLH) == null)
            {
                errorStr += "Lớp học không tồn tại.";
                return errorStr;
            }
            if (KNSinhVien.LaySVTuMS(mssv) == null)
            {
                errorStr += "Sinh viên không tồn tại.";
                return errorStr;
            }
            DTChiTietLH ctlh = new DTChiTietLH();
            ctlh.MSSV = mssv;
            ctlh.TenLopHoc = tenLH;
            if (!KNChiTietLH.XoaChiTietLH(ctlh))
            {
                errorStr += "Không xóa được sinh viên của lớp học.";
            }
            return errorStr;
        } 
    }
}
